package br.com.plurianual.model.entity;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="acao")
public class Acao extends BaseEntity implements Serializable{

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="idAcao", unique=true, nullable=false)
	private Integer id;
	
	@Column(name="codigoAcao")
	private Integer codigo;
	
	@Column(name="descricaoAcao")
	private String  descricao;
	
	@Column(name="produto")
	private String  produto;
	
	@Column(name="situacao")
	private Integer situacao;
	
	@Column(name="tipo")
	private Integer tipo;
	
	@Column(name="ano1")
	private Integer ano1;

	@Column(name="ano2")
	private Integer ano2;

	@Column(name="ano3")
	private Integer ano3;

	@Column(name="ano4")
	private Integer ano4;

	@Column(name="valor1")
	private Double valor1;

	@Column(name="valor2")
	private Double valor2;

	@Column(name="valor3")
	private Double valor3;

	@Column(name="valor4")
	private Double valor4;

	@Column(name="meta1")
	private Double meta1;

	@Column(name="meta2")
	private Double meta2;

	@Column(name="meta3")
	private Double meta3;

	@Column(name="meta4")
	private Double meta4;
	
	@JoinColumn(name="idOrgao")
	@ManyToOne(cascade = CascadeType.DETACH)
	private Orgao orgao;
	
	@JoinColumn(name="idUnidadeOrcamentaria")
	@ManyToOne(cascade = CascadeType.DETACH)
	private UnidadeOrcamentaria unidadeOrcamentaria;
	
	@JoinColumn(name="idPrograma")
	@ManyToOne(cascade = CascadeType.DETACH)
	private Programa programa;
	
	@Column(name="unidadeMedida")
	private String unidadeMedida;

	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}

	public String getUnidadeMedida() {
		return unidadeMedida;
	}

	public void setUnidadeMedida(String unidadeMedida) {
		this.unidadeMedida = unidadeMedida;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * @return the codigo
	 */
	public Integer getCodigo() {
		return codigo;
	}

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	/**
	 * @return the descricao
	 */
	public String getDescricao() {
		return descricao;
	}

	/**
	 * @param descricao the descricao to set
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * @return the produto
	 */
	public String getProduto() {
		return produto;
	}

	/**
	 * @param produto the produto to set
	 */
	public void setProduto(String produto) {
		this.produto = produto;
	}

	/**
	 * @return the situacao
	 */
	public Integer getSituacao() {
		return situacao;
	}

	/**
	 * @param situacao the situacao to set
	 */
	public void setSituacao(Integer situacao) {
		this.situacao = situacao;
	}

	/**
	 * @return the tipo
	 */
	public Integer getTipo() {
		return tipo;
	}

	/**
	 * @param tipo the tipo to set
	 */
	public void setTipo(Integer tipo) {
		this.tipo = tipo;
	}

	/**
	 * @return the ano1
	 */
	public Integer getAno1() {
		return ano1;
	}

	/**
	 * @param ano1 the ano1 to set
	 */
	public void setAno1(Integer ano1) {
		this.ano1 = ano1;
	}

	/**
	 * @return the ano2
	 */
	public Integer getAno2() {
		return ano2;
	}

	/**
	 * @param ano2 the ano2 to set
	 */
	public void setAno2(Integer ano2) {
		this.ano2 = ano2;
	}

	/**
	 * @return the ano3
	 */
	public Integer getAno3() {
		return ano3;
	}

	/**
	 * @param ano3 the ano3 to set
	 */
	public void setAno3(Integer ano3) {
		this.ano3 = ano3;
	}

	/**
	 * @return the ano4
	 */
	public Integer getAno4() {
		return ano4;
	}

	/**
	 * @param ano4 the ano4 to set
	 */
	public void setAno4(Integer ano4) {
		this.ano4 = ano4;
	}

	/**
	 * @return the valor1
	 */
	public Double getValor1() {
		return valor1;
	}

	/**
	 * @param valor1 the valor1 to set
	 */
	public void setValor1(Double valor1) {
		this.valor1 = valor1;
	}

	/**
	 * @return the valor2
	 */
	public Double getValor2() {
		return valor2;
	}

	/**
	 * @param valor2 the valor2 to set
	 */
	public void setValor2(Double valor2) {
		this.valor2 = valor2;
	}

	/**
	 * @return the valor3
	 */
	public Double getValor3() {
		return valor3;
	}

	/**
	 * @param valor3 the valor3 to set
	 */
	public void setValor3(Double valor3) {
		this.valor3 = valor3;
	}

	/**
	 * @return the valor4
	 */
	public Double getValor4() {
		return valor4;
	}

	/**
	 * @param valor4 the valor4 to set
	 */
	public void setValor4(Double valor4) {
		this.valor4 = valor4;
	}

	/**
	 * @return the meta1
	 */
	public Double getMeta1() {
		return meta1;
	}

	/**
	 * @param meta1 the meta1 to set
	 */
	public void setMeta1(Double meta1) {
		this.meta1 = meta1;
	}

	/**
	 * @return the meta2
	 */
	public Double getMeta2() {
		return meta2;
	}

	/**
	 * @param meta2 the meta2 to set
	 */
	public void setMeta2(Double meta2) {
		this.meta2 = meta2;
	}

	/**
	 * @return the meta3
	 */
	public Double getMeta3() {
		return meta3;
	}

	/**
	 * @param meta3 the meta3 to set
	 */
	public void setMeta3(Double meta3) {
		this.meta3 = meta3;
	}

	/**
	 * @return the meta4
	 */
	public Double getMeta4() {
		return meta4;
	}

	/**
	 * @param meta4 the meta4 to set
	 */
	public void setMeta4(Double meta4) {
		this.meta4 = meta4;
	}

	/**
	 * @return the orgao
	 */
	public Orgao getOrgao() {
		return orgao;
	}

	/**
	 * @param orgao the orgao to set
	 */
	public void setOrgao(Orgao orgao) {
		this.orgao = orgao;
	}

	/**
	 * @return the unidadeOrcamentaria
	 */
	public UnidadeOrcamentaria getUnidadeOrcamentaria() {
		return unidadeOrcamentaria;
	}

	/**
	 * @param unidadeOrcamentaria the unidadeOrcamentaria to set
	 */
	public void setUnidadeOrcamentaria(UnidadeOrcamentaria unidadeOrcamentaria) {
		this.unidadeOrcamentaria = unidadeOrcamentaria;
	}

	/**
	 * @return the programa
	 */
	public Programa getPrograma() {
		return programa;
	}

	/**
	 * @param programa the programa to set
	 */
	public void setPrograma(Programa programa) {
		this.programa = programa;
	}
	
}
